import {
  defineStore
} from 'pinia'
import {
  ref
} from 'vue'

/* 定义Store */
// 购物车缓存
export const cartInfoStore = defineStore('cart', () => {

  const cartInfo = ref([])
  // 保存会员信息，登录时使用
  const setCartInfo = (val) => {
    console.log(val)
    for (let i = 0; i < cartInfo.value.length; i++) {
      if (val.goodId === cartInfo.value[i].goodId) {
        cartInfo.value[i].goodNum++;
        return
      }
    }
    cartInfo.value.push(val)
  }
  // 清理购物车，退出时使用
  const clearCartInfo = () => {
    cartInfo.value = undefined
  }

  // 清除指定的购物车商品信息
  const deleteCartById = (index) => {
    console.log("index：" + index)
    cartInfo.value.splice(index, 1) // splice删除数组中的元素，参数1是位置，参数2是个数。 删除一个元素对象用pop（）， splice还可以插入/替换元素
  }
  // 记得return
  return {
    cartInfo,
    setCartInfo,
    deleteCartById,
    clearCartInfo
  }
}, { // 持久化
  persist: {
    storage: {
      setItem(key, value) {
        uni.setStorageSync(key, value) // 多端兼容
      },
      getItem(key) {
        return uni.getStorageSync(key) // 多端兼容
      }
    }
  }
})